﻿// Copyright (c) ZhangPeihang. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.

using LaserMark.DataAccess.Models;

namespace LaserMark.Components.Services;
public interface IGlobalStatus
{
    /// <summary>
    ///
    /// </summary>
    bool IsRunning { get; set; }

    /// <summary>
    ///
    /// </summary>
    bool IsXZeroBack { get; set; }

    /// <summary>
    ///
    /// </summary>
    bool IsYZeroBack { get; set; }

    /// <summary>
    ///
    /// </summary>
    bool IsZZeroBack { get; set; }

    /// <summary>
    /// 
    /// </summary>
    bool IsRestart { get; set; }

    /// <summary>
    /// 
    /// </summary>
    bool IsPause { get; set; }

    /// <summary>
    /// 
    /// </summary>
    bool IsStop { get; set; }

    bool IsMarked { get; set; }

    /// <summary>
    /// 急停
    /// </summary>
    bool IsEmergencyStop { get; set; }

    bool IsStateTimeOut { get; set; }

    bool IsLimitX { get; set; }

    bool IsLimitY { get; set; }

    bool IsLimitZA { get; set; }

    bool IsLimitZN { get; set; }

    /// <summary>
    /// 
    /// </summary>
    [NotNull]
    List<AuditLog>? AuditLog { get; set; }


    bool Iscan { get; set; }


    string? ScanMesaage { get; set; }

    string? ProductMessage { get; set; }

    /// <summary>
    /// 
    /// </summary>
    bool IsOnlyTransfor { get; set; }


    bool IsTransComplete { get; set; }

    CancellationTokenSource? StopToken { get; set; }
}
